/**
 * \file display.h
 * \brief Header du outil pour controler l'affichage de l'écran LCD.
 * \author 
 * \version 0.4
 * \date  14 mars 2011
 *
 * Implémentation des fonctions aider l'affichage de l'écran LCD.
 *
 */


#ifndef H_DISPLAY_T
#define H_DISPLAY_T
/**
*\def STRING
*\def CHAR_AT
*\def CLEAR
*\def LINE_1
*\def LINE_2
*
*/


// Commandes d'affichage disponibles

/**
 * \def STRING
 * Afficher une chaine de caracteres
 * la variable msg contient le message a afficher
 * 
 */
 
#define STRING 1

/** 
 * \def CHAR_AT
 * Affiche un caractere a une certaine position
 * La variable msg est un table de 3 caractères contenenant
 * dans l'ordre le caractère, la ligne et l'index sur cet ligne
 */
 
#define CHAR_AT 2

/** 
 * \def CLEAR
 * Supprime le contenu de l'écran 
 * 
 */
 
#define CLEAR 3

/** 
 * \def LINE_1
 * Affiche la chaine sur la ligne 1 de l'ecran 
 * 
 */
 
#define LINE_1 4

/** 
 * \def LINE_2
 * Affiche la chaine sur la ligne 2 de l'ecran 
 * 
 */
 
#define LINE_2 5

/**
 * \struct DisplayCommand display.h
 * Commande pour l'affichage
 * - command correspond à une des macros définie ci-dessus
 * - *msg correspond à la chaine de charactère
 */
 
typedef struct  
{
	char command;
	char *msg;
} DisplayCommand;

/**
 * \fn void afficher(char *chaine)
 * \brief Afficher une chaine de caractères sur l'écran.
 * 
 * \param chaine Chaine de caractères à afficher
 *
 */


void afficher(char *chaine);

/**
 * \fn void afficherChar(char c, char ligne, char pos)
 * \brief Afficher un caractères à une position précise sur l'écran.
 * 
 * \param c Caractère à afficher
 * \param ligne Numéro de ligne à afficher
 * \param pos Position dans la ligne à afficher
 *
 */
void afficherChar(char c, char ligne, char pos);
/**
 * \fn affichage(DisplayCommand *cmd)
 * \brief Afficher une la commande l'écran.
 * 
 * \param chaine cmd commande à afficher
 * 
 */

void affichage(DisplayCommand *cmd);

#endif
